Data storage devices may include decoders, such as error correction code (ECC) engines, that are used to decode data read from memories of the data storage devices and to correct errors in the data. Some ECC engines use soft bits that indicates probabilities that one or more bits are correct (or incorrect) in order to decode a representation of data and to correct one or more errors. The soft bits may be generated by applying multiple read voltages to storage elements, and comparing voltages read from the storage elements to multiple thresholds. Additionally, the soft bits may be generated based on bit line defect information. Bit line defect information may indicate which bit lines of a memory are “bad bit lines.” Bad bit lines refer to bit lines that have defects (e.g., faults, flaws, and/or “errors”). At least some storage elements coupled to bad bit lines may have a high likelihood of storing incorrect data. The bit line defect information may be generated based on tests performed during fabrication and production of a data storage device. Because the bit line defect information is generated during fabrication and production, the bit line defect information indicates bad bit lines that are detected prior to a significant portion of the operational lifetime of the device. Additionally, the bit line defect information may not indicate “weak” bit lines. Weak bit lines refers to bit lines that are not initially defective, however storage elements coupled to weak bit lines are more likely than other storage elements to occasionally store incorrect data.